#pragma once
#include <array>

class Quat;
class Vec3;

//"AABB"的本质特性是轴对齐

class AABB
{
private:
    Vec3 *_center;  //手动释放
    Vec3 *_halfExtents; //手动释放
    std::array<Vec3, 8> _vertices; //无需手动释放

public:
    AABB();
    void setCenter(float x, float y, float z);
    Vec3 *getCenter();
    void setHalfExtents(float x, float y, float z);
    Vec3 *getHalfExtents();

    void transform(Vec3 *pos, Vec3 *scale, Quat *q);
    ~AABB();
};
